home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / include / linux / qnx4_fs.h < prev    next >
C/C++ Source or Header  |  2008-10-24  |  2KB  |  92 lines

  1. /*
  2.  *  Name                         : qnx4_fs.h
  3.  *  Author                       : Richard Frowijn
  4.  *  Function                     : qnx4 global filesystem definitions
  5.  *  Version                      : 1.0.2
  6.  *  Last modified                : 2000-01-31
  7.  *
  8.  *  History                      : 23-03-1998 created
  9.  */
  10. #ifndef _LINUX_QNX4_FS_H
  11. #define _LINUX_QNX4_FS_H
  12.  
  13. #include <linux/qnxtypes.h>
  14. #include <linux/magic.h>
  15.  
  16. #define QNX4_ROOT_INO 1
  17.  
  18. #define QNX4_MAX_XTNTS_PER_XBLK    60
  19. /* for di_status */
  20. #define QNX4_FILE_USED          0x01
  21. #define QNX4_FILE_MODIFIED      0x02
  22. #define QNX4_FILE_BUSY          0x04
  23. #define QNX4_FILE_LINK          0x08
  24. #define QNX4_FILE_INODE         0x10
  25. #define QNX4_FILE_FSYSCLEAN     0x20
  26.  
  27. #define QNX4_I_MAP_SLOTS    8
  28. #define QNX4_Z_MAP_SLOTS    64
  29. #define QNX4_VALID_FS        0x0001    /* Clean fs. */
  30. #define QNX4_ERROR_FS        0x0002    /* fs has errors. */
  31. #define QNX4_BLOCK_SIZE         0x200    /* blocksize of 512 bytes */
  32. #define QNX4_BLOCK_SIZE_BITS    9    /* blocksize shift */
  33. #define QNX4_DIR_ENTRY_SIZE     0x040    /* dir entry size of 64 bytes */
  34. #define QNX4_DIR_ENTRY_SIZE_BITS 6    /* dir entry size shift */
  35. #define QNX4_XBLK_ENTRY_SIZE    0x200    /* xblk entry size */
  36. #define QNX4_INODES_PER_BLOCK   0x08    /* 512 / 64 */
  37.  
  38. /* for filenames */
  39. #define QNX4_SHORT_NAME_MAX    16
  40. #define QNX4_NAME_MAX        48
  41.  
  42. /*
  43.  * This is the original qnx4 inode layout on disk.
  44.  */
  45. struct qnx4_inode_entry {
  46.     char        di_fname[QNX4_SHORT_NAME_MAX];
  47.     qnx4_off_t    di_size;
  48.     qnx4_xtnt_t    di_first_xtnt;
  49.     __le32        di_xblk;
  50.     __le32        di_ftime;
  51.     __le32        di_mtime;
  52.     __le32        di_atime;
  53.     __le32        di_ctime;
  54.     qnx4_nxtnt_t    di_num_xtnts;
  55.     qnx4_mode_t    di_mode;
  56.     qnx4_muid_t    di_uid;
  57.     qnx4_mgid_t    di_gid;
  58.     qnx4_nlink_t    di_nlink;
  59.     __u8        di_zero[4];
  60.     qnx4_ftype_t    di_type;
  61.     __u8        di_status;
  62. };
  63.  
  64. struct qnx4_link_info {
  65.     char        dl_fname[QNX4_NAME_MAX];
  66.     __le32        dl_inode_blk;
  67.     __u8        dl_inode_ndx;
  68.     __u8        dl_spare[10];
  69.     __u8        dl_status;
  70. };
  71.  
  72. struct qnx4_xblk {
  73.     __le32        xblk_next_xblk;
  74.     __le32        xblk_prev_xblk;
  75.     __u8        xblk_num_xtnts;
  76.     __u8        xblk_spare[3];
  77.     __le32        xblk_num_blocks;
  78.     qnx4_xtnt_t    xblk_xtnts[QNX4_MAX_XTNTS_PER_XBLK];
  79.     char        xblk_signature[8];
  80.     qnx4_xtnt_t    xblk_first_xtnt;
  81. };
  82.  
  83. struct qnx4_super_block {
  84.     struct qnx4_inode_entry RootDir;
  85.     struct qnx4_inode_entry Inode;
  86.     struct qnx4_inode_entry Boot;
  87.     struct qnx4_inode_entry AltBoot;
  88. };
  89.  
  90.  
  91. #endif
  92.